Dynamic software updates for C applications
نویسنده
چکیده
A common inconvenience of keeping a computer system’s installed applications updated is the loss of the availability of services while the respective application is updating. Typically, the user has a hard choice to make: Accept the downtime or pay the cost of a redundant system. Many regular applications are not well suited to be run in a truly redundant way, but even when a redundant system is available, updating carries the risk of total loss of service in case of a failure in the part which remains online. This article presents a solution in the form of Dynamic Software Updates for applications written in C. Several implementations of dynamic software updates are discussed, and their applicability to some common applications is explored. The tools necessary to create patches between versions are also scrutinized, along with performance characteristics of the individual approaches and the required time to conduct an update. Special attention is given to applications employing concurrency, as the added complexity of threads which are interacting with each other needs to be addressed to guarantee the safety of an update process.
منابع مشابه
Flexible Dynamic Software Updates of Java Applications: Tool Support and Case Study
Software is changed frequently during its life cycle. New requirements come and bugs must be fixed. To update an application it usually must be stopped, patched, and restarted. This causes time periods of unavailability which is always a problem for highly available applications. Even for the development of complex applications restarts to test new program parts can be time consuming and annoyi...
متن کاملJAVADAPTOR: unrestricted dynamic updates of Java applications
Software is changed frequently during its life cycle. New requirements come and bugs must be fixed. To update a deployed application, it usually must be stopped, patched, and restarted. This update strategy causes different problems. For instance, frequent program restarts to test newly added functionality or debug applications consume time and thus render software development processes ineffec...
متن کاملJavAdaptor - Flexible runtime updates of Java applications
Software is changed frequently during its life cycle. New requirements come, and bugs must be fixed. To update an application, it usually must be stopped, patched, and restarted. This causes time periods of unavailability, which is always a problem for highly available applications. Even for the development of complex applications, restarts to test new program parts can be time consuming and an...
متن کاملShortening Time-to-Discovery with Dynamic Software Updates for Parallel High Performance Applications
Despite using multiple concurrent processors, a typical high performance parallel application is long-running, taking hours, even days to arrive at a solution. To modify a running high performance parallel application, the programmer has to stop the computation, change the code, redeploy, and enqueue the updated version to be scheduled to run, thus wasting not only the programmer’s time, but al...
متن کاملDynamic software updates for parallel high-performance applications
Despite using multiple concurrent processors, a typical high performance parallel application is long-running, taking hours, even days to arrive at a solution. To modify a running high performance parallel application, the programmer has to stop the computation, change the code, redeploy, and enqueue the updated version to be scheduled to run, thus wasting not only the programmer’s time, but al...
متن کامل